home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1984-04-24 | 2.3 KB | 92 lines |
- 1 'SAVE "Aster2
- 2 REM Copyright 1983 by Dorn W. Stickle
- 10 DEF SEG:POKE 106,0
- 20 GOSUB 710
- 30 SCREEN 1
- 40 LOCATE 2,1: PRINT "ASTEROID PILOT";
- 50 LOCATE 3,1: PRINT "Copyright 1982";
- 60 LOCATE 5,1: PRINT "by R.A.Bower";
- 61 LOCATE 18,12:PRINT "USE SHIFT KEY TO CONTROL PATH THROUGH THE ASTEROIDS"
- 62 LOCATE 20,12:PRINT "OBJECT OF GAME IS TO REACH RIGHT SIDE OF ASTEROIDS FIELD"
- 70 S1=1:SKIL=10: TOT%=0: SUC%=0
- 80 GOSUB 690
- 90 DV=0 'Top of main loop
- 100 TOT%=TOT%+1
- 110 LINE (0,0)-(319,199),0,BF 'Graphic CLS
- 120 FOR A%=1 TO 15+SKIL 'Asteriods
- 130 X$=INKEY$
- 140 X=40+RND*279 : Y=RND*199
- 142 IF 3=POINT(X,Y) GOTO 140
- 150 CIRCLE (X,Y),1+RND*(25-SKIL/6),3: PAINT (X,Y),3
- 160 ' Add dust
- 170 FOR B%=0 TO SKIL\4:PSET (1+2*INT(RND*159),RND*199),1: NEXT
- 180 NEXT
- 190 LINE (0,0)-(319,199),3,B
- 200 LOCATE 8,1: PRINT CHR$(7) "Hit any key to begin..or ESC for MENU.";
- 205 DEF SEG=&H40
- 206 K$=INKEY$:IF LEN(K$)<>1 THEN 206
- 207 IF ASC(K$)=27 THEN RUN"TV"
- 210 IF K$="" THEN 220
- 220 LOCATE 8,1: PRINT SPACE$(39),CHR$(29)
- 230 Y=20: XO=1: YO=20: S2=S1: HIT%=0: HIT1%=0
- 240 FOR X=1 TO 318 STEP 1
- 250 IF 0=(15 AND PEEK(&H17)) THEN DV=DV+0.2 ELSE DV=DV-0.2: SOUND 37+400*S2*ABS(DV),0.1
- 260 Y=Y+S2*DV
- 270 IF Y<=0.5 OR Y>=198.5 GOTO 590
- 280 IF POINT(X,Y)=3 GOTO 480 'Hit Asteriod
- 290 IF POINT(X,Y)<>1 GOTO 330
- 300 HIT%=(HIT%+1) MOD 2:HIT1%=1 'Hit dust
- 310 CIRCLE (X,Y),5,2: SOUND 5000,1: PAINT (X,Y),2: DV=0
- 320 IF HIT%=1 THEN S2=0.1*S1 ELSE S2=S1
- 330 LINE (XO,YO)-(X,Y),3-HIT%
- 340 XO=X: YO=Y
- 350 FOR I=1 TO (70-SKIL)\2:NEXT
- 360 NEXT
- 370 REM ---Success
- 380 SOUND 500,5
- 390 S1=S1*1.1*1.1:SKIL=SKIL+4
- 400 SUC%=SUC%+1
- 410 GOSUB 670
- 420 IF HIT1%=1 GOTO 570
- 430 PAINT (5,1),2,3
- 440 LINE (XO,YO)-(320,Y0),2
- 450 PSET (0,20),2
- 460 PAINT (5,199),1,2
- 470 GOTO 570
- 480 REM -----Hit-----
- 490 IF SKIL>0 THEN S1=S1/1.1:SKIL=SKIL-2
- 500 GOSUB 670
- 510 FOR I=1 TO 20
- 520 LINE (X,Y)-STEP (10-RND*80,40-RND*80),2
- 530 FOR J=1 TO 5
- 540 SOUND 1000+400*RND,0.02
- 550 NEXT
- 560 NEXT
- 570 FOR I=1 TO 2000: NEXT
- 580 GOTO 90
- 590 X=FRE(""):PLAY "mb" '----Outside----
- 600 IF Y>100 GOTO 630
- 610 FOR I=37 TO 6000 STEP 100:SOUND I,0.1: NEXT
- 620 GOTO 640
- 630 FOR I=6000 TO 37 STEP -100:SOUND I,0.1: NEXT
- 640 IF SKIL>0 THEN S1=S1/1.1:SKIL=SKIL-2
- 650 GOSUB 670
- 660 GOTO 570
- 670 REM Subroutine to update status
- 680 LOCATE 15,1: PRINT "You have won" SUC% "of" TOT% "tries."
- 690 LOCATE 13,1: PRINT "Skill level:" USING "###";SKIL\2;
- 700 RETURN
- 710 REM ATTACH color screen for graphics
- 720 DEF SEG=0: A=PEEK(&H410)
- 730 REM COLOR - Switch to Color Monitor
- 740 POKE &H410,(A AND &HCF) OR &H20
- 750 KEY OFF:SCREEN 0
- 760 SCREEN 1: LOCATE ,,1,6,7
- 770 DEF SEG=0: A=PEEK(&H410)
- 780 REM MONO - switch to monochrome
- 790 POKE &H410,(A OR &H30)
- 800 LOCATE ,,1,12,13
- 810 SCREEN 0,0,0
- 820 WIDTH 80
- 830 RETURN
-